home *** CD-ROM | disk | FTP | other *** search
/ Young Minds / Young Minds Interactive CD-ROM.ISO / spacewar / update.c < prev    next >
Encoding:
C/C++ Source or Header  |  1988-05-31  |  1.8 KB  |  93 lines

  1. /*
  2.  * Spacewar - update the universe
  3.  *
  4.  * Copyright 1985 obo Systems, Inc.
  5.  * Copyright 1985 Dan Rosenblatt
  6.  */
  7.  
  8. #include "spacewar.h"
  9. #ifndef VMS
  10. #include <sys/types.h>
  11. #else /* BSD SYSIII SYSV */
  12. #include <types.h>
  13. #endif
  14. #include "universe.h"
  15. #include "login.h"
  16. #include "sys.h"
  17. #include "aln.h"
  18. #include "build.h"
  19. #include "flds.h"
  20. #include "torp.h"
  21. #include "crft.h"
  22.  
  23. long gametime;
  24.  
  25. VOID update()
  26. {
  27.     struct universe *puniv;
  28.     register struct login *plogin;
  29.     struct crft *pcrft;
  30.     char *s,*lckmsg();
  31.     extern int numpling;
  32.  
  33. #ifdef DEBUG
  34.     DBG("update()\n");
  35. #endif
  36.  
  37.     /* periodic sync and lockout check */
  38.     if (++gametime%60L == 0) {
  39.         objupdate();
  40.         crftupdate((struct login *)0);
  41.         if (s=lckmsg()) {
  42.         numpling = 0;
  43.         for (plogin=loginlst+MAXLOGIN;plogin-- > loginlst;) {
  44.             if (plogin->ln_tty && plogin->ln_play.ip_ptr) {
  45.             remove(plogin->ln_play);
  46.             plogin->ln_iomode = NULL;
  47.             plogin->ln_crft[0] = NULL;
  48.             plogin->ln_play.ip_ptr = NULL;
  49.             plogin->ln_stat = NULL;
  50.             plogin->ln_substat = NULL;
  51.             output(plogin,'E',0,0);
  52.             output(plogin,'B',0,0);
  53.             output(plogin,'C',0,"\n\n");
  54.             output(plogin,'C',0,s);
  55.             output(plogin,'C',0,"\n");
  56.             output(plogin,'C',0,PROMPT);
  57.             output(plogin,0,0,0);
  58.             }
  59.         }
  60.         }
  61.     }
  62.  
  63.     /* movement of objects */
  64.     updobjs();
  65.     updmov();
  66.  
  67.     /* movement of intelligent nasties */
  68.     updtorp();
  69.     updaln();
  70.  
  71.     /* damage/destruction from hull damage, damage control */
  72.     upddmg();
  73.  
  74.     /* energy subsystems */
  75.     updsys();
  76.  
  77.     /* direction, sensors, homing */
  78.     upddsh();
  79.  
  80.     /* player's screens */
  81.     for (plogin=loginlst;plogin < loginlst+MAXLOGIN;++plogin) {
  82.         if (!plogin->ln_tty || !(puniv=plogin->ln_play.ip_ptr)) continue;
  83.         nums(pcrft=puniv->uv_ptr.uv_crft);
  84.         view(pcrft);
  85.         output(plogin,0,0,0);
  86.         pcrft->cr_time += 1;
  87.     }
  88.  
  89. #ifdef DEBUG
  90.     VDBG("update return\n");
  91. #endif
  92. }
  93.